#ifndef __HAL_EEPROM_H
#define __HAL_EEPROM_H

#include "stdint.h"
#include "stdbool.h"


#define PARAMETER_FMU_INFO_SHIFT                    0
#define PARAMETER_FMU_INFO_LENGTH                   PARAMETER_FMU_INFO_SHIFT + 2
#define PARAMETER_FMU_ACC_CORRECTION_INFO_SHIFT     PARAMETER_FMU_INFO_LENGTH + PARAMETER_FMU_INFO_SHIFT
#define PARAMETER_FMU_ACC_CORRECTION_INFO_LENGTH    12
#define PARAMETER_FMU_GYRO_CORRECTION_INFO_SHIFT    PARAMETER_FMU_ACC_CORRECTION_INFO_SHIFT + PARAMETER_FMU_ACC_CORRECTION_INFO_LENGTH
#define PARAMETER_FMU_GYRO_CORRECTION_INFO_LENGTH   12
#define PARAMETER_FMU_ESC_CORRECTION_FLAG_SHIFT     PARAMETER_FMU_GYRO_CORRECTION_INFO_SHIFT + PARAMETER_FMU_GYRO_CORRECTION_INFO_LENGTH
#define PARAMETER_FMU_ESC_CORRECTION_FLAG_LENGTH    1

void HAL_EEPROM_Init(void);
void HAL_EEPROM_Read(uint8_t shift, uint8_t length, uint8_t *Target);
bool HAL_EEPROM_Write(uint8_t shift, uint8_t *ptr, uint16_t length);

#endif
